1. Technical Field
The present invention relates to apparatus and method for controlling allocation of resources among autonomous agents that negotiate for the resources.
2. Description of Related Art
The problems of resource negotiation, allocation, and general logistics are applicable to most industries. These include the military, manufacturers, and trading and commerce organizations.
Frequently, real world applications involve the actions of multiple (semi-) autonomous units or teams, engaged in tasks directed toward the achievement of common goals, sharing a limited supply of essential resources, and operating in a dynamic, changing environment. Members of teams include computers, other cooperating agents or people operating computers. Each member of a team has resources that may be required to complete tasks and/or has the ability to execute tasks given the necessary resources. Logistics is a prime example of one such application, but examples also include process control and flexible manufacturing in industry, commerce and quality in economics, and autonomous control and distributed robotics in engineering research. Algorithms from operations research and auction-based negotiation schemes have been developed for automating the solution to resource allocation problems. However, these methods are generally written as centralized procedures. It is necessary to disseminate the results to the actual players, making it difficult to account for unforeseen elements in the operating environment or to respond to changing conditions. Furthermore, centralized solutions to resource allocation problems do not always scale well, they may be impractical due to processing or memory constraints, depending on the size of the problem. Simple distributed negotiation techniques exist for solving resource allocation problems. However, what these techniques make up for in terms of dynamic operation and processing requirements, they lack in terms of the overall quality of the solution. Failure of a central resource may defeat the process. Bidding may be purely competitive rather than attempting to optimize use of resources versus performance demands. Finally, both distributed and centralized methods lack an inherent mechanism for representing task flow or the complex relationships and inter-dependencies between tasks and between tasks and resources. Their architecture does not include task flow, as well as who gets what resource.